package org.codeart.chainrespon.example02;

import org.codeart.chainrespon.pojo.AuthInfo;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 审核申请接口
 */
public class AuthController {
    
    private final SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    /**
     * 审核方法
     */
    public AuthInfo doAuth(String name, String orderId, Date authDate) throws ParseException {
        // 三级审批为null
        // 查询是否存在审核信息 虚拟三级审核人ID 1000013
        Date date;
        date = AuthService.queryAuthInfo("1000013", orderId);
        if (date == null) {
            return new AuthInfo("0001", "单号: " + orderId, "状态: 等待三级审批负责人进行审批");
        }

        // 查询是否存在审核信息 虚拟二级审核人ID 1000012
        // 二级审核人审核清单的时间范围为 01-01 ~ 05-20
        Date startDate = formatter.parse("2024-01-01 00:00:00");
        Date endDate = formatter.parse("2024-05-20 00:00:00");
        if (authDate.after(startDate) && authDate.before(endDate)) {
            // 条件成立 查询二级审核信息
            date = AuthService.queryAuthInfo("1000012", orderId);
            if (date == null) {
                return new AuthInfo("0001", "单号: " + orderId, "状态: 等待二级审批负责人进行审批");
            }
        }
        
        // 一级审批人
        if (authDate.after(startDate) && authDate.before(endDate)) {
            // 条件成立 查询二级审核信息
            date = AuthService.queryAuthInfo("1000011", orderId);
            if (date == null) {
                return new AuthInfo("0001", "单号: " + orderId, "状态: 等待一级审批负责人进行审批");
            }
        }
        
        return new AuthInfo("0001", "单号: " + orderId, "申请人: " + name, "状态: 审批完成");
    }
}
